/**
 * 版权所有(C)，上海海鼎信息工程股份有限公司，2008，所有权利保留。
 * 
 * 项目名：	rumba-web
 * 文件名：	IProgressPanel.java
 * 模块说明：	
 * 修改历史：
 * Jul 28, 2008 - lxm - 创建。
 */
package com.hd123.rumba.gwt.util.client.batchprocess;

/**
 * 带有进度功能的面板接口。
 * 
 * @author lxm
 * 
 */
public interface IProgressPanel {

  /** 显示的提示信息。 */
  public String getMessage();

  public void setMessage(String message);

  /** 最小值。 */
  public float getMin();

  public void setMin(float min);

  /** 最大值。 */
  public float getMax();

  public void setMax(float max);

  /** 当前进度位置。 */
  public float getPos();

  public void setPos(float pos);

  /** 是否允许操作者中断。默认为true。 */
  public boolean isInterruptable();

  public void setInterruptable(boolean interruptable);

  /** 进度条上的文字风格：空白 */
  public static final int PGRSTYLE_BLANK = 0;
  /** 进度条上的文字风格：百分比 */
  public static final int PGRSTYLE_PERCENT = 1;
  /** 进度条上的文字风格：计数，例如“3 of 10”。 */
  public static final int PGRSTYLE_COUNT = 2;

  /** 进度条上显示文字的风格。取值参见常量“PGRSTYLE_*”，默认为PGRSTYLE_PERCENT。 */
  public int getPgrTextStyle();

  public void setPgrTextStyle(int style);

  /**
   * 初始化进度状态。
   */
  public void initial();

  /**
   * 进度前进指定的步长。
   * 
   * @param step
   *          指定前进的步长。
   */
  public void stepBy(int step);

  /**
   * 取得当前进度的百分比。
   * 
   * @return
   */
  public float getPercent();

  /**
   * 取得是否被操作者中断。
   * 
   * @return
   */
  public boolean isInterrupted();

  /**
   * 显示面板。
   */
  public void show();

  /**
   * 隐藏面板。
   */
  public void hide();
}
